/*
 * stepper_types.h
 *
 *  Created on: Jan 28, 2025
 *      Author: wzx05
 */

#ifndef INC_MOTOR_STEPPER_CFG_H_
#define INC_MOTOR_STEPPER_CFG_H_

#include <Motor\stepper_types.h>
#include "main.h"

// 系统配置参数
#define MOTOR_GROUPS        2   // 总组数
#define MOTORS_PER_GROUP    4   // 每组电机数
#define BITS_PER_MOTOR      4   // 每个电机占用的位数

// 移位寄存器组配置
/*
typedef struct {
    GPIO_TypeDef* ser_port;   // 数据引脚所在端口
    uint16_t ser_pin;         // 数据引脚
    GPIO_TypeDef* srclk_port; // 移位时钟引脚所在端口
    uint16_t srclk_pin;       // 移位时钟引脚
    GPIO_TypeDef* rclk_port;  // 锁存时钟引脚所在端口
    uint16_t rclk_pin;        // 锁存时钟引脚
} ShiftRegGroup;
*/

// 电机位域掩码（每组内）
static const uint16_t motor_masks[MOTORS_PER_GROUP] = {
    0x000F, // 电机0：占用低4位
    0x00F0, // 电机1：占用4~7位
    0x0F00, // 电机2：占用8~11位
    0xF000  // 电机3：占用12~15位
};

#endif /* INC_MOTOR_STEPPER_CFG_H_ */
